package mysql8学习.高级.第17章_其他数据库日志;

/**
 * 6.3 两阶段提交
 * 在执行更新语句过程，会记录redo log与binlog两块日志,以基本的事务为单位，
 * redo log在事务执行过程中可以不断写入，而binlog只有在提交事务时才写入，
 * ****所以redo log与binlog的写入时机不一样。****
 *
 * redo log与binlog两份日志之间的逻辑不一致,会出现什么问题?
 * 以update语句为例，假设id=2的记录，字段c值是0,把字段c值更新成1,
 * SQL语句为update T set c=1 where id=2。
 * 假设执行过程中写完redo log日志后，binlog日志写期间发生了异常，会出现什么情况呢?
 *
 * 由于redo log是恢复信息的日志，不容易丢失
 * 而binlog日志一般用于主从复制的同步日志，只有在事务提交的时候才写入，
 * 可能出现binlog日志写一半的时候  失败
 * 导致主从回复的时候  信息不一致，
 * 所以在  binlog日志的前后 都执行一次redo log的阶段
 *
 * 写入redo log (prepare阶段)
 * 提交事务 写入 binlog日志
 * redo log设置 commit阶段
 *
 */
public class F3_两阶段提交 {
}
